Abs = function() {
	this.version = "1.0.0";
	this.versionLabel = "Abs";
	this.versionDetail = {
		major : 1,
		minor : 0,
		patch : 0
	};
};
/**
 *
 * @param {Object}
 *            original 原始
 * @param {Object}
 *            current 当前
 */
Abs.apply = function(original, current) {
	if (original && current && typeof current == 'object') {
		for ( var key in current) {
			original[key] = current[key];
		}
	}
};
Abs.apply(Abs, {

	isBoolean : function(value) {
		return typeof value == 'boolean';
	},

	isString : function(value) {
		return typeof value == 'string';
	},

	isDate : function(value) {
		return value ? value.constructor == Date : false;
	},

	isNumber : function(value) {
		return value ? value.constructor == Number : false;
	},

	isFunction : function(value) {
		return value ? value.constructor == Function : false;
	},

	isArray : function(value) {
		return value ? value.constructor == Array : false;
	},
	isEmpty : function(value) {
		return this.isArray(value) && value.length == 0;
	},
	isPrimitive : function(value) {
		return Abs.isString(value) || Abs.isBoolean(value) || Abs.isNumber(value);
	},

	isDefined : function(value) {
		return typeof value !== 'undefined';
	},

	isUnDefined : function(value) {
		return typeof value == 'undefined';
	},

	override : function(original, current) {
		if (current && original) {
			var p = original.prototype;
			Abs.apply(p, current);
			p = null;
			delete p;
		}
	},

	extend : function(original, current) {
		if (current && original) {
			var p = original.prototype;
			Abs.apply(p, current);
			p = null;
			delete p;
		}
	}

});
Abs.config = function() {

};
Abs.common = function() {

};
Abs.common.Root = function() {

};
Abs.util = function() {

};
Abs.util.Paging = function() {

	this.start = 0;
	this.limit = 20;

};
Abs.data = function() {

};
Abs.data.Store = function(config) {
	Abs.apply(this, config);
};
Abs.apply(Abs.data.Store, {

	url : '',

	data : null,

	setUrl : function(u) {
		this.url = u;
	},

	getUrl : function() {
		return this.url;
	}

	setData : function(d) {
		this.data = d;
	},

	getData : function() {
		return this.data;
	}

});
Abs.data.JSONStore = Abs.extend(Abs.data.Store, {

});
Abs.data.Reader = function() {

};
Abs.data.JSONReader = Abs.extend(Abs.data.Reader, {

});
Abs.data.Loader = function(config) {
	Abs.apply(this, config);
};
Abs.apply(Abs.data.Loader, {

	store : new Store(),

	load : function() {

	}

});
Abs.grid = function() {

};
Abs.swt = function() {

};
Abs.swt.Event = function() {

};
Abs.swt.Component = function(config) {
	Abs.apply(this, config);
};
Abs.apply(Abs.swt.Component, {
	add : function(c) {

	}
});
Abs.swt.Button = Abs.extend(Abs.swt.Component, {

	label : '',

	// 添加指定的动作侦听器，以接收发自此按钮的动作事件。
	addActionListener : function(l) {

	},

	// 创建按钮的同位体。
	addNotify : function() {

	},

	// 获取与此 Button 相关的 AccessibleContext。
	getAccessibleContext : function() {

	},

	// 返回此按钮激发的动作事件的命令名称。
	getActionCommand : function() {

	},

	// 返回在此按钮上注册的所有动作侦听器的一个数组。
	getActionListeners : function() {

	},

	// 获取此按钮的标签。
	getLabel : function() {
		return this.label;
	},

	// 返回当前在此 Button 上注册为 FooListener 的所有对象的数组。
	getListeners : function(listenerType) {

	},

	// 移除指定的动作侦听器，以便它不再接收发自此按钮的动作事件。
	removeActionListener : function(l) {

	},
	// 设置此按钮激发的动作事件的命令名称。
	setActionCommand : function(command) {

	},

	// 将按钮的标签设置为指定的字符串。
	setLabel : function(label) {
		this.label = label;
	}

});
Abs.swt.Canvas = Abs.extend(Abs.swt.Component, {

});
Abs.swt.Checkbox = Abs.extend(Abs.swt.Component, {

});
Abs.swt.Choice = Abs.extend(Abs.swt.Component, {

});
Abs.swt.Label = Abs.extend(Abs.swt.Component, {

	text : '',

	alignment : 1,

	// 创建此标签的同位体。
	addNotify : function() {

	},

	// 获取与此标签相关的 AccessibleContext。
	getAccessibleContext : function() {

	},

	// 获取此标签的当前对齐方式。
	getAlignment : function() {
		return this.alignment;
	},

	// 获取此标签的文本。
	getText : function() {
		return this.text;
	},

	// 将此标签的对齐方式设置为指定的方式。
	setAlignment : function(alignment) {
		this.alignment = alignment;
	},

	// 将此标签的文本设置为指定的文本。
	setText : function(text) {
		this.text = text;
	}

});
Abs.swt.Container = Abs.extend(Abs.swt.Component, {

});
Abs.swt.List = Abs.extend(Abs.swt.Component, {

});
Abs.swt.Scrollbar = Abs.extend(Abs.swt.Component, {

});
Abs.swt.TextComponent = Abs.extend(Abs.swt.Component, {

});
Abs.swt.Panel = Abs.extend(Abs.swt.Component, {

	appendTo : '',

	clearAble : true

});
Abs.swt.ScrollPane = Abs.extend(Abs.swt.Component, {

});
Abs.swt.Window = Abs.extend(Abs.swt.Component, {

});
Abs.swt.TextArea = Abs.extend(Abs.swt.TextComponent, {

});
Abs.swt.TextField = Abs.extend(Abs.swt.TextComponent, {

});
Abs.swt.Dialog = Abs.extend(Abs.swt.Window, {

});
Abs.swt.Frame = Abs.extend(Abs.swt.Window, {

});
